
package cn.bluethink.eguan.model.core;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonInclude;

/**
 * @title 驿馆+产品中的所有用户（有包裹
 * @Copyright 苏州中科蓝迪公司所有(c)2016-2021
 * @version 0.1
 *
 * @note 修订历史： （1）liuxn于2018年8月14日构建初始版本0.1
 *       （2）giszyj@126.com于2018年10月06日增加JsonInclue约束，删除userId和cTime属性
 *       （3）giszyj@126.com于2018年10月06日修改role、acount和pos属性
 */
public class EgUser extends EgObject {

	/**
	 * 用户头像
	 */
	private String avatar;

	/**
	 * 用户角色
	 */
	@JsonInclude(JsonInclude.Include.NON_NULL)
	private EgRole role = null;

	/**
	 * 用户的包裹，只有查询用户详细信息时候不为NULL，其余都为NULL
	 */
	@JsonInclude(JsonInclude.Include.NON_NULL)
	private EgBag bag = null;

	/**
	 * bt币账户，只有查询用户详细信息时候不为NULL，其余都为NULL
	 */
	@JsonInclude(JsonInclude.Include.NON_NULL)
	private EgAcount acount = null;
	
	/**
	 * 技能点，只有查询用户详细信息时候不为NULL，其余都为NULL
	 */
	@JsonInclude(JsonInclude.Include.NON_NULL)
	private Integer skp = null;

	/**
	 * 经验值，只有查询用户详细信息时候不为NULL，其余都为NULL
	 */
	@JsonInclude(JsonInclude.Include.NON_NULL)
	private Integer exp = null;
	
	/**
	 * 用户在什么位置，WHERE
	 * 目前：用户的位置信息只能在用户进入江湖、门派、驿馆时进行更新
	 */
	@JsonInclude(JsonInclude.Include.NON_NULL)
	private EgObject pos = null;

	/**
	 * 用户信息更新时间，WHEN
	 */
	@JsonInclude(JsonInclude.Include.NON_NULL)
	private Date uTime = null;
	
	/**
	 * @since 1.0.0
	 * @roseuid 5B6D5349016F
	 */
	public EgUser() {
	}
	public EgUser(Long id, String name, String avatar ) {
	    super(id,name,new EgOType(EgOType.USER,null));
		this.avatar = (avatar == null ? "" : avatar);
	}

	public String getAvatar() {
		return avatar;
	}

	public void setAvatar(String avatar) {
		this.avatar = avatar;
	}

	public EgRole getRole() {
		return role;
	}

	public void setRole(EgRole role) {
		this.role = role;
	}

	public EgBag getBag() {
		return bag;
	}

	public void setBag(EgBag bag) {
		this.bag = bag;
	}

	public EgAcount getAcount() {
		return acount;
	}

	public void setAcount(EgAcount acount) {
		this.acount = acount;
	}

	public Integer getSkp() {
		return skp;
	}

	public void setSkp(Integer skp) {
		this.skp = skp;
	}

	public Integer getExp() {
		return exp;
	}

	public void setExp(Integer exp) {
		this.exp = exp;
	}

	public EgObject getPos() {
		return pos;
	}

	public void setPos(EgObject pos) {
		this.pos = pos;
	}

	public Date getuTime() {
		return uTime;
	}

	public void setuTime(Date uTime) {
		this.uTime = uTime;
	}
	
}
